type MapPerson<Type> = {
  readonly [Property in keyof Type]?: Type[Property];
};

interface IPerson {
  name: string;
  age: number;
  height: number;
  address: string;
}
// 基于已有类型改造拷贝一个新类型
type IPersonOptional = MapPerson<IPerson>;

const p: IPersonOptional = {};

export {};
